package com.elitedatai.mchtest.map.service;

import com.elitedatai.mchtest.map.model.dto.DeviceDataStatusDTO;
import com.elitedatai.mchtest.map.model.dto.DeviceFlightAreaDTO;

import java.util.List;
import java.util.Optional;

/**
 * 设备数据服务接口
 * 定义了处理设备数据状态相关业务逻辑的方法
 *
 */
public interface IDeviceDataService {

    /**
     * 获取工作空间内所有设备的数据状态
     *
     * @param workspaceId 工作空间ID，用于标识特定的工作空间
     * @return 设备数据状态DTO列表，包含该工作空间内所有设备的状态信息
     */
    List<DeviceDataStatusDTO> getDevicesDataStatus(String workspaceId);

    /**
     * 根据工作空间ID和设备序列号获取特定设备的状态信息
     *
     * @param workspaceId 工作空间ID，用于标识特定的工作空间
     * @param deviceSn 设备序列号，用于标识特定的设备
     * @return Optional包装的设备飞行区域DTO，如果设备存在则包含设备状态信息，否则为空
     */
    Optional<DeviceFlightAreaDTO> getDeviceStatus(String workspaceId, String deviceSn);
}